package com.metier;

import java.util.Date;
import java.util.List;

import com.beans.CompteRenduActivite;
import com.beans.Conges;
import com.beans.Entrees;
import com.beans.Projets;
import com.beans.Users;
import com.dao.CompteRenduActivitesDao;
import com.dao.ProjetsDao;
import com.dao.UsersDao;

public class CraMetier {
private Users userlog ;
private String Logrecuperer ;
private  Users userConnecter ;
private  UsersMetier userMetier ;
	private  Projets projetsEncours ;
	 CompteRenduActivitesDao craDao;
	 CompteRenduActivite cra;

	public CraMetier() {
		userConnecter = new Users() ;
		
		userMetier = new UsersMetier() ;
		craDao = new CompteRenduActivitesDao();
		cra = new CompteRenduActivite();
			
	}
	
	
	// méthode de la couche métier permettant de lister les Comptes rendus
	
		public List<CompteRenduActivite> chargerAllEntrees(){
			
			List<CompteRenduActivite> listCra = craDao.selectAllCra();
			return listCra;
		}
		//  methode permettant de lister les  cra propre  à un consultant  
		

		public List<CompteRenduActivite> mesCompteRenduActivites(long usrid){
			
			return craDao.mesCompteRenduActivite(usrid);

		

		}
		
		//Méthode permettant d'ajouter un compte rendu dans la base
		
		public void addCra( Date craDateFin,Date craDateDeb, String actDureEff, String actDurePrev,String craDescription
	     
	  ,String actProjet,String statutprojet  ){
			
			CompteRenduActivite craAjouter = new CompteRenduActivite();
			userConnecter = userMetier.findUserByLogin(getLogrecuperer());
			String log = getLogrecuperer();
			System.out
					.println("login recuperer corespondant au user connescté  "
							+ log);
			craAjouter.setUsers(userlog);
		//	craAjouter.setCraUserCreate(userConnecter.getUsrId());
			
			craAjouter.setProjets(projetsEncours);
			craAjouter.setCraDateCreate(new Date());			
			craAjouter.setCraDateFin(craDateFin);
			craAjouter.setCraDateDeb(craDateDeb);
			craAjouter.setActDureEff(actDureEff);
			craAjouter.setActDurePrev(actDurePrev);
			craAjouter.setCraDescription(craDescription);
			craAjouter.setActProjet(actProjet);
			craAjouter.setActStatut(statutprojet);

			craDao.addCra(craAjouter);
				
		}
		
		//Methode permettant de supprimer un compte rendu dans la base
		
				public boolean testDeleteCra(CompteRenduActivite cra) {
					
					boolean canDeleted = craDao.deleteCra(cra);
					return canDeleted;
					
				}

				//methode permettant de rechercher un compte rendu donné dans la base de données
				
				public CompteRenduActivite findCompteRenduActiviteByDate(Date cradate) {
					
					CompteRenduActivite cra = new CompteRenduActivite();
					cra = craDao.findCra(cradate);
					return cra;

				}
				
				 // méthode de la couche métier permettant de modifier un cra pour un consultant  donné
			    
			    
			    public void updateCraMetier(Date craDateDebut, Date craDateFin, String craprojEtat,String cradureff ,String cradurprev, String craactprojet,String cracommentaire) {
			        CompteRenduActivite craModifier = new CompteRenduActivite();
			        
			        craModifier.setActDureEff(cradureff);
			        craModifier.setActDurePrev(cradurprev);
			        craModifier.setActProjet(craactprojet);
			        craModifier.setActStatut(craprojEtat);
			        craModifier.setCraDateDeb(craDateDebut);
			        craModifier.setCraDateFin(craDateFin);
			        craModifier.setCraDescription(cracommentaire);
			        
			        
			        craDao.updateCra(craModifier);
			    }
			    
			 // methode pour la mise à jour
				public boolean testUpdate(CompteRenduActivite cra ) {
					boolean canUpdate =  craDao.updateCra(cra);
					return canUpdate;

				}
				/**
				 * @return the userlog
				 */
				public Users getUserlog() {
					return userlog;
				}

				/**
				 * @param userlog the userlog to set
				 */
				public void setUserlog(Users userlog) {
					this.userlog = userlog;
				}

				/**
				 * @return the projetsEncours
				 */
				public Projets getProjetsEncours() {
					return projetsEncours;
				}

				/**
				 * @param projetsEncours the projetsEncours to set
				 */
				public void setProjetsEncours(Projets projetsEncours) {
					this.projetsEncours = projetsEncours;
				}

				/**
				 * @return the craDao
				 */
				public CompteRenduActivitesDao getCraDao() {
					return craDao;
				}

				/**
				 * @param craDao the craDao to set
				 */
				public void setCraDao(CompteRenduActivitesDao craDao) {
					this.craDao = craDao;
				}

				/**
				 * @return the cra
				 */
				public CompteRenduActivite getCra() {
					return cra;
				}

				/**
				 * @param cra the cra to set
				 */
				public void setCra(CompteRenduActivite cra) {
					this.cra = cra;
				}


				/**
				 * @return the logrecuperer
				 */
				public String getLogrecuperer() {
					return Logrecuperer;
				}


				/**
				 * @param logrecuperer the logrecuperer to set
				 */
				public void setLogrecuperer(String logrecuperer) {
					Logrecuperer = logrecuperer;
				}


				/**
				 * @return the userConnecter
				 */
				public Users getUserConnecter() {
					return userConnecter;
				}


				/**
				 * @param userConnecter the userConnecter to set
				 */
				public void setUserConnecter(Users userConnecter) {
					this.userConnecter = userConnecter;
				}


				/**
				 * @return the userMetier
				 */
				public UsersMetier getUserMetier() {
					return userMetier;
				}


				/**
				 * @param userMetier the userMetier to set
				 */
				public void setUserMetier(UsersMetier userMetier) {
					this.userMetier = userMetier;
				}
				

}
